#ifndef TABELAHASH_H_
#define TABELAHASH_H_

#include <map>
#include "IdentificadorGenerico.h"
#include "../Lexico/Arquivo.h"

class TabelaHash {
public:
	TabelaHash();
	void addHash(IdentificadorGenerico*);
	IdentificadorGenerico* buscarNoh(string, string);
	bool existeNoh(string,string);
	void showHashTable(char*);
	virtual ~TabelaHash();

private:

	int funcaoHash(string);
	string IntToString(int);
	multimap<int,IdentificadorGenerico*> hashTable;
	multimap<int,IdentificadorGenerico*>::iterator it;
	Arquivo fileOut;
	/*
	 * tem q ser um numero primo
	 * para o melhor funcionamento da fu%$#k
	 * hash table
	 */
	static const int NUMERO_PRIMO = 217;
};

#endif /*TABELAHASH_H_*/
